const puppeteer = require('puppeteer');
const weibo = async(req, res) => {
    //爬取微博热搜
    // 启动浏览器，默认情况下是无头模式，可以设置 headless: false 来开启有头模式
    const browser = await puppeteer.launch({
        headless: false, // 设置为 true 则运行在无头模式
        // 其他启动选项...
    });

    // 打开一个新的页面
    const page = await browser.newPage();

    try {
        // 导航到目标网址
        await page.goto('https://juejin.cn/', { waitUntil: 'networkidle0' }); // 替换为你要爬取的网址

        // 等待特定的选择器元素加载完成，这通常是一个动态生成的内容
        await page.waitForSelector('.side-navigator-wrap', { timeout: 5000 }); // 替换为动态元素的选择器

        // 使用 page.evaluate() 来在页面上下文中执行脚本并获取数据
        const data = await page.evaluate(() => {
            // 这里的代码会在页面上下文中执行，可以访问页面中的 DOM
            // 替换为实际要获取的数据的选择器
            const element = document.querySelector('.side-navigator-wrap');
            return element ? element.textContent : null; // 获取文本内容，或者根据需要选择其他属性
        });

        // 输出获取到的数据
        console.log(data);
        res.send(data)
    } catch (error) {
        // 如果出现错误，打印错误信息
        console.error('Error during page navigation or data scraping:', error);
    } finally {
        // 无论成功或失败，都关闭浏览器
        await browser.close();
    }

    await browser.close();
}

module.exports = {
    weibo
}
